package sample.tools;

/**
 * 作者：w on 2021-07-15.
 * 邮箱：y141111@126.com
 * 版本：v1.0
 * latitude 纬度 最大90度
 * longitude 经度 大于90度的一定是经度
 */
public class CoordinateTransformation {
    public static double[] TransformLongLat(double longitude, double latitude){
        double x = (double)((int)(longitude / 100)) + (longitude - ((int)(longitude / 100)) * 100) / 60;
        double y = (double)((int)(latitude / 100)) + ((latitude) - ((int)(latitude / 100)) * 100) / 60;
        return new double[]{x, y};
    }

    /**
     * GPGGA经度转换为GPS经度
     * @param longitude GPGGA经度
     * @return GPS经度
     */
    public static double GPGGALongitude2GPS(double longitude){
        return (double)((int)(longitude / 100)) + (longitude - ((int)(longitude / 100)) * 100) / 60;
    }

    /**
     * GPGGA纬度转换为GPS纬度
     * @param latitude GPGGA纬度
     * @return GPS纬度
     */
    public static double GPGGALatitude2GPS(double latitude){
        return (double)((int)(latitude / 100)) + ((latitude) - ((int)(latitude / 100)) * 100) / 60;
    }
    /**
     * 传入 GPGGA经纬度数据
     * longlat[0]是纬度
     * longlat[1]是精度
     * @param longlat longlat[2][]
     * @return 返回 GPS经纬度数据
     */
    public static double[][] TransformLongLat(double[][] longlat){
        for (int i = 0; i < longlat[0].length; i++){
            longlat[0][i] = GPGGALatitude2GPS(longlat[0][i]);
            longlat[1][i] = GPGGALatitude2GPS(longlat[1][i]);
//            longlat[1][i] = GPGGALatitude2GPS(longlat[1][i]) - 200;
        }
        return longlat;
    }
}
